Systems and methods for displaying labels in a clustering in-box environment

ABSTRACT

Systems and methods for displaying electronic messages are disclosed. In one aspect, a method is performed at a computing device. The method includes: (1) receiving a plurality of electronic messages; (2) assigning a first subset of the messages to a predefined group category based on a set of content-based clustering rules and content in respective bodies of the messages; (3) concurrently displaying a second subset of the messages and a cluster graphic corresponding to the predefined group category, where the cluster graphic includes a label that describes the predefined group category; (4) while concurrently displaying the second subset of electronic messages and the cluster graphic, receiving user selection of the cluster graphic; and (5) in response, displaying a plurality of messages in the predefined group category, including displaying at least one message from the first subset of messages.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/187,069, filed Feb. 21, 2014, entitled “Systems and Methods forDisplaying Unseen Labels in a Clustering In-Box Environment,” whichclaims priority to U.S. Provisional Patent Application No. 61/922,565,filed Dec. 31, 2013, entitled “Systems and Methods for Displaying UnseenLabels in a Clustering In-Box Environment,” each of which is herebyincorporated by reference herein in its entirety.

TECHNICAL FIELD

The embodiments disclosed herein relate generally to displayingelectronic messages in a messaging application.

BACKGROUND

A typical user of a messaging application often receives a large numberof electronic messages, such as emails, social network posts, contactinformation, search queries and calendar entries every day. Such a largenumber of electronic messages can be cumbersome to navigate through.Messaging application users wish to navigate through a listing of suchelectronic messages quickly to identify relevant messages. However, thevolume of electronic messages makes it difficult to do so.

The above identified technical problems are reduced or eliminated by thesystems and methods disclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments disclosed herein are illustrated by way of example, andnot by way of limitation, in the figures of the accompanying drawings.Like reference numerals refer to corresponding parts throughout thedrawings.

FIG. 1 is an example block diagram illustrating a computing system, inaccordance with some embodiments.

FIG. 2 is an example block diagram illustrating a computing device, inaccordance with some embodiments.

FIG. 3 is an example block diagram illustrating a user interface objectdisplaying system, in accordance with some embodiments.

FIGS. 4A-4H are depictions of example user interfaces of a messagingapplication for displaying electronic messages in accordance with someembodiments.

FIGS. 5A-5B are example flow charts illustrating methods for displayingmessages, in accordance with some embodiments.

SUMMARY

Technical solutions (e.g., computing systems, methods, andnon-transitory computer readable storage mediums) for presenting anumber of messages that have a predefined display status (e.g., unseenmessages) in a cluster of electronic messages are provided in thepresent application.

In some embodiments, a method for displaying electronic messagesincludes, at a computing device, concurrently displaying (i) a userinterface object that represents a group of messages and (ii) one ormore first indicia of a number of messages, that have a predefineddisplay status, in the group of messages while foregoing displaying morethan one message of the group of messages. The method also includesreceiving a selection of the user interface object. The method furtherincludes, in response to receiving the selection of the user interfaceobject, displaying messages in the group of messages, and, in accordancewith displaying the messages in the group of messages, modifying the oneor more displayed first indicia of the number of messages, that have thepredefined display status, in the group of messages.

In some embodiments, displaying the user interface object thatrepresents the group of messages includes displaying a portion of amessage in the group of messages while foregoing displaying one or moremessages, in the group of messages, other than the respective message.

In some embodiments, displaying the user interface object thatrepresents the group of messages includes displaying a tab thatcorresponds to the group of messages.

In some embodiments, modifying the one or more displayed first indiciaof the number of messages, that have the predefined display status, inthe group of messages includes ceasing to display the one or more firstindicia of the number of messages, that have the predefined displaystatus, in the group of messages after a predetermined period of timehas elapsed.

In some embodiments, each message in messages in the group of messagesis categorized and arranged in accordance with a dichotomouscategorization.

In some embodiments, the dichotomous categorization is whether arespective message has been received within a predefined time period.

In some embodiments, the method includes concurrently displaying the oneor more first indicia of the number of messages, that have thepredefined display status, in the group of messages with one or moresecond indicia of a number of messages, in the group of messages, thathave been received within the predefined time period. Modifying the oneor more displayed first indicia of the number of messages, that have thepredefined display status, in the group of messages includes ceasing todisplay the one or more first indicia while maintaining the display ofthe one or more second indicia.

In some embodiments, messages, that have the predefined display status,in the group of messages are messages, in the group of messages, thathave not been displayed previously.

In some embodiments, the method includes concurrently displaying (i) theuser interface object, (ii) one or more second indicia of a number ofmessages, that have a predefined read status, in the group of messages,(iii) the one or more first indicia of the number of messages, that havethe predefined display status, in the group of messages.

In some embodiments, the method includes modifying the one or moredisplayed first indicia of the number of messages after a predeterminedperiod of time subsequent to displaying the messages in the group ofmessages.

In some embodiments, the method includes, prior to the concurrentlydisplaying, selecting the group of messages, from a plurality ofmessages received or sent by a single user, into the user interfaceobject using a set of content-based clustering rules that areindependent of relatedness between the messages in the group ofmessages.

In other aspects of the present disclosure, computing systems andnon-transitory computer storage mediums for executing one or more stepsof any of the above-described methods are also disclosed.

DETAILED DESCRIPTION

As explained above, a typical user of a messaging application oftenreceives a large number of electronic messages, such as emails, socialnetwork posts, contact information, search queries and calendar entriesevery day. Such a large number of electronic messages can be cumbersometo navigate through. In particular, when a user receives a large numberof incoming messages, the user often needs to mark all of the incomingmessages (e.g., as a read message) so that the user does not need torevisit the same messages. However, this is time-consuming andinefficient.

Message clustering simplifies a user interface for displaying messages,because clustered messages are represented by a single user interfaceobject, instead using a single user interface object for each message inthe group.

The embodiments described herein provide various technical solutions toimproving access to electronic messages, and in particular to theabove-identified problems, by providing techniques for displayingelectronic messages to a user. Instead of requiring a user to read everyincoming electronic message (or mark every incoming electronic messageas read), an indication of a number of unseen electronic messages (e.g.,electronic messages that have not been previously displayed) in acluster is used. The indication is removed when the cluster is selectedby the user and unseen electronic messages in the cluster are presentedto the user. The displayed electronic messages are no longer marked asunseen, and the user need not focus on these messages, unless the usermarks these messages in some other way (e.g., as important messages).Thus, the indication of a number of unseen messages is used to eliminatethe need for the user to read, or mark as read, all of the incomingmessages, thereby improving efficiency in navigating through electronicmessages.

Details of embodiments are now described in relation to the Figures.

FIG. 1 is a block diagram illustrating a computing system 100, inaccordance with some embodiments.

In some embodiments, the computing system 100 includes one or moredevices 102 (e.g., device 102A, 102B, 102C, 102D . . . , and 102N), acommunication network 104, and a user interface object displaying system106 (also called herein an object displaying system). In someembodiments, a device 102 is a phone (mobile or landline, smart phone orotherwise), a tablet, a computer (mobile or otherwise), a fax machine,or an audio/video recorder.

In some embodiments, a device 102 obtains an electronic message from(e.g., drafted or generated by) a user of the device 102, and transmitsthe electronic message to the user interface object displaying system106 for displaying with other electronic messages. For example, afterdetermining that user Jack sends an electronic message to user Mary, thedevice 102 transmits the electronic message to the user interface objectdisplaying system 106, which processes the electronic message into auser interface object for display in a listing of electronic messages.

In some embodiments, an electronic message is a file transfer 111-a(e.g., a photo, document, or video download/upload), an email 111-b, aninstant message 111-c (e.g., a GOOGLE HANGOUT message), a fax message111-d, a social network update 111-e (e.g., a GOOGLE PLUS update), or avoice message 111-f. In some embodiments, an electronic message iscontact information, an indication of a document, a calendar entry, anemail label, a recent search query, a suggested search query, or a websearch result.

In some embodiments, a device 102 includes a messaging application 150and optionally an analysis module 110. In some embodiments, themessaging application 150 processes incoming and outgoing electronicmessages into and from the device 102, such as an outgoing email sent bya user of the device 102 to another user, and a chat message by anotheruser to a user of the device 102. In some embodiments the messagingapplication 150 is an e-mail application. In some embodiments, theanalysis module 110 resident on the device 102 balances processing loadwith the analysis module 170 resident on the user interface objectdisplaying system 106. For example, after a user requests to send out atotal of six emails, the analysis module 110 on the device 102 processesthe first three emails (which, in some embodiments, include plain textemails, e.g., without HTML content or attachments, and thus mightrequire less processing power), and the analysis module 170 on the userinterface object displaying system 106 processes the remaining threeemails (which, in some embodiments, include HTML content or attachments,and thus might require more processing power).

In some embodiments, the communication network 104 interconnects one ormore devices 102 with each other, and with the user interface objectdisplaying system 106. In some embodiments, the communication network104 optionally includes the Internet, one or more local area networks(LANs), one or more wide area networks (WANs), other types of networks,or a combination of such networks.

With reference to FIGS. 1 and 3, in some embodiments, the user interfaceobject displaying system 106 includes an analysis module 170, a messagequeue 112 and a collection of object display rules 114 (e.g., user- orsystem-provided rules).

In some embodiments, the user interface object displaying system 106analyzes content of incoming electronic messages (e.g., incomingmessages 111), and assigns these electronic messages to one or more userinterface objects (e.g., user interface objects 120-1, 120-2 . . .120-m). In some embodiments, a user interface object (e.g., userinterface object set 120-1) corresponds to one electronic message, withone or more display states (e.g., states 121-1, 121-2 . . . 121-n). Forexample, a user interface object 120-1 may consist of a single emailfrom user Jack to user Mary, with a first display state of a shortsubset of text in the single email, and a second display statecomprising the full text of the body of the email. In some embodiments,a user interface object (e.g., the user interface object 120-1)corresponds to more than one electronic message, with one or moredisplay states (e.g., states 121-1, 121-2 . . . 121-n). For example,after analyzing the message body of an electronic message, the userinterface object displaying system 106 determines (e.g., with a 90%confidence level) that the electronic message is a “Promotion” message(e.g., an email with advertising materials), and accordingly assigns theelectronic message to a “Promotion” user interface object (e.g., theuser interface object 120-2). In some embodiments, assigning anelectronic message to a user interface object includes assigning a label(a “Promotion” or “Travel” label) that represents the user interfaceobject. In some embodiments, the “Promotion” user interface object hasat least three display states, a first display state (e.g., 121-1)displaying a short text-based summary of the various electronic messagesin the user interface object 120-1, a second display state (e.g., 121-2)displaying a listing of the electronic messages in the user interfaceobject 120-1 with a subset of the text for each respective electronicmessage, and a third display state (e.g., 121-3) comprising the fulltext of the body of one of the electronic messages in user interfaceobject 120-1. In some embodiments, a user interface object comprises asingle electronic message (e.g., a Social Network cluster comprising onesocial network update message). In some embodiments, a user interfaceobject is a message cluster. Message clusters are defined on the basisof one or more clustering rules.

In some embodiments, the analysis module 170 analyzes an electronicmessage against object display rules 114, to determine how to displaythe electronic message. For example, an incoming electronic message isfirst analyzed to determine if it can be displayed as a part of one ormore existing user interface objects (e.g., user interface objects 120-1through 120-m). For example, if a user interface object 120-1 comprisesa single electronic message from user Jack to user Mary, an electronicmessage comprising a reply from user Mary to user Jack would also beplaced in the user interface object 120-1 by the analysis module 170. Inanother example, if the analysis module 170 analyzes an electronicmessage and determines that it is a single message corresponding to asocial network post, and that none of the existing user interfaceobjects corresponds to social network messages (or social networkmessages from that social network), the analysis module 170 places thesingle message corresponding to a social network post into a new userinterface object. In some embodiments, the analysis module 170 alsodetermines and updates one or more display states for the respectiveuser interface object of the plurality of user interface objects (e.g.,user interface object sets 120-1 . . . 120-m).

In some embodiments, the analysis module 110 is a software or hardwarecomponent resident on the device 102, such as a softwarepackage/application or a hardware chipset, for clustering electronicmessages, and the analysis module 170 on the user interface objectdisplaying system 106 is not used. In some embodiments, the analysismodule 110 is not present and the analysis module 170, which existsseparate from or independent of the device 102 is used (e.g., a GOOGLEmail processing server that is connected with but not part of the device102, e.g., in the manner depicted in FIG. 1 with the analysis module170). In still other embodiments, the analysis module 110 is a softwareor hardware component resident on the device 102, such as a softwarepackage/application or a hardware chipset, for displaying electronicmessages, and the analysis module 170 on the user interface objectdisplaying system 106 is also used. That is, both the analysis module110 on the device 102 and the analysis module 170 on the user interfaceobject displaying system 106 are used. For instance, in some suchembodiments some object display rules 114 (e.g. user-specified rules)are implemented on the device 102 and implemented using the analysismodule 110 and some object display rules 114 (e.g., system-providedrules) are implemented on the user interface object displaying system106 and implemented using the analysis module 170. In some embodiments,some object display rules are generated on the user interface objectdisplaying system 106 and distributed to the devices 102 for enforcementand/or implementation by the analysis module 110. For instance, a set ofdisplay rules can be distributed in the form of a profile or set ofrules. In some embodiments, such distribution of rules to devices 102occurs on a recurring basis (e.g., periodic or nonperiodic basis).

In some embodiments, the message queue 112 stores one or more electronicmessages awaiting analysis by the analysis module 170, such as MSG 4,MSG 5, MSG 6, . . . and MSG N (FIG. 1, 113-4 . . . 113-n). In someembodiments, the message queue 112 includes different types ofelectronic messages, such as a file transfer 111-a (e.g., a photo,document, or video upload), an email 111-b, an instant message 111-c(e.g., a Google HANGOUT message), a fax message 111-d, a social networkupdate 111-e (e.g., a GOOGLE PLUS update), a voice message 111-f,contact information, an indication of a document, a calendar entry, anemail label, a recent search query, a suggested search query, or a websearch result. In some embodiments, the message queue 112 includeselectronic messages only.

In some embodiments, the collection of object display rules 114 includesystem- and user-specified display rules. In some embodiments,system-provided rules are determined by the user interface objectdisplaying system 106 (e.g., default display rules), and user-specifiedrules are customized (e.g., added, removed, or modified) by a user.

FIG. 2 is a block diagram illustrating a computing device 102, inaccordance with some embodiments. The device 102 in some embodimentsincludes one or more processing units CPU(s) 202 (also referred to asprocessors), one or more network interfaces 204, a user interface 205, amemory 206, and one or more communication buses 208 for interconnectingthese components. The communication buses 208 optionally includecircuitry (sometimes called a chipset) that interconnects and controlscommunications between system components. In some embodiments, the userinterface 205 includes an input device (e.g., a keyboard, a mouse, atouchpad, a track pad, and a touch screen) for a user to interact withthe device 102.

The memory 206 typically includes high-speed random access memory, suchas DRAM, SRAM, DDR RAM or other random access solid state memorydevices; and optionally includes non-volatile memory, such as one ormore magnetic disk storage devices, optical disk storage devices, flashmemory devices, or other non-volatile solid state storage devices. Thememory 206 optionally includes one or more storage devices remotelylocated from the CPU(s) 202. The memory 206, or alternatively thenon-volatile memory device(s) within the memory 206, comprises anon-transitory computer readable storage medium. In some embodiments,the memory 206 or alternatively the non-transitory computer readablestorage medium stores the following programs, modules and datastructures, or a subset thereof:

-   -   an operating system 210, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module (or instructions) 212 for        connecting the device 102 with other devices (e.g., the user        interface object displaying system 106 and the devices 102B        through 102N) via one or more network interfaces 204 (wired or        wireless), or the communication network 104 (FIG. 1);    -   a messaging application 150 for processing and displaying        incoming and outgoing electronic messages;    -   optionally an analysis module 110 for analyzing content of        (e.g., income and outgoing) electronic messages, and assigning        electronic messages to one or more user interface object sets in        accordance with therewith, in accordance with object display        rules 216; and    -   optionally a user interface module 218 for displaying user        interface components or controls (e.g., textbox, button, radio        button, drop-down list) to a user.

In some embodiments, the messaging application 150 includes:

-   -   a display module 220 for displaying and modifying one or more        user interface objects that represent groups of messages and one        or more indicia of numbers of messages that satisfy predefined        criteria; and    -   a selection module 222 for receiving a selection of one or more        user interface objects (e.g., with a user input using the user        interface 205).

In some embodiments, the display module 220 includes one or moresub-modules, such as (i) a user interface object display sub-module thatinitiates display of one or more user interface objects that representgroups of messages, and (ii) an indicia display sub-module thatinitiates display of one or more indicia of a number of messages thatsatisfy predefined criteria.

In some embodiments, the messaging application 150 displays electronicmessages using one or more user interface object graphics. In someembodiments, the one or more user interface object graphics include oneor more of:

-   -   a user interface object graphic 1 (214-1) that visually displays        any one of a First Display State (121-1), Second Display State        (121-2), up to an Nth Display State (121-n)—where user interface        object graphic 1 comprises one or more electronic messages;    -   a user interface object graphic 2 (214-2) that visually displays        any one of a First Display State (122-1), Second Display State        (122-2), up to an Nth Display State (122-n)—where user interface        object graphic 2 comprises one or more electronic messages; and    -   a user interface object graphic m (214-m) that visually displays        any one of a number of display states—where user interface        object graphic m comprises one or more electronic messages.

In some embodiments, when the messaging application 150 includesmultiple user interface object graphics, a first user interface objectgraphic (e.g., the user interface object graphic 1 (214-1)) is distinctfrom a second user interface object graphic (e.g., the user interfaceobject graphic 2 (214-2)). In some embodiments, when the messagingapplication 150 includes multiple user interface object graphics, thesecond user interface object graphic does not include any electronicmessage in the first user interface object graphic.

In some embodiments, one or more of the above identified elements arestored in one or more of the previously mentioned memory devices, andcorrespond to a set of instructions for performing a function describedabove. The above identified modules or programs (e.g., sets ofinstructions) need not be implemented as separate software programs,procedures or modules, and thus various subsets of these modules may becombined or otherwise re-arranged in various embodiments. In someembodiments, the memory 206 stores a subset of the modules and datastructures identified above. Furthermore, the memory 206 may storeadditional modules and data structures not described above.

FIG. 3 is a block diagram illustrating a user interface objectdisplaying system 106, in accordance with some embodiments. The userinterface object displaying system 106 typically includes one or moreprocessing units CPU(s) 302 (also referred to as processors), one ormore network interfaces 304, memory 306, and one or more communicationbuses 308 for interconnecting these components. The communication buses308 optionally include circuitry (sometimes called a chipset) thatinterconnects and controls communications between system components. Thememory 306 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM or other random access solid state memory devices; andoptionally includes non-volatile memory, such as one or more magneticdisk storage devices, optical disk storage devices, flash memorydevices, or other non-volatile solid state storage devices. The memory306 optionally includes one or more storage devices remotely locatedfrom CPU(s) 302. The memory 306, or alternatively the non-volatilememory device(s) within the memory 306, comprises a non-transitorycomputer readable storage medium. In some embodiments, the memory 306 oralternatively the non-transitory computer readable storage medium storesthe following programs, modules and data structures, or a subsetthereof:

-   -   an operating system 310, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a network communication module (or instructions) 312 for        connecting the user interface object displaying system 106 with        other devices (e.g., the devices 102) via the one or more        network interfaces 304 (wired or wireless), or the communication        network 104 (FIG. 1);    -   an analysis module 170 for conducting a content-based analysis        on (e.g., incoming and outgoing) electronic messages and        assigning electronic messages to one or more user interface        object sets in accordance with the content based analysis;    -   a message queue 112 for storing electronic messages awaiting        processing by the analysis module 170, e.g., MSG 4, MSG 5, MSG        6, . . . and MSG n (113-4 . . . 113-n);    -   a collection of object display rules 114, which specify or        determine the corresponding display state or states for a        respective user interface object; and    -   one or more user interface object displays 120 for displaying        electronic messages assigned thereto, which include:        -   a user interface object 120-1, for displaying electronic            message(s) assigned thereto, in any one of the following            display states:            -   first display state 121-1;            -   second display state 121-2; and up to            -   n^(th) display state 121-n;        -   a user interface object 120-2, for displaying electronic            message(s) assigned thereto, in any one of the following            display states:            -   first display state 122-1;            -   second display state 122-2; and up to            -   nth display state 122-n;        -   a user interface object set 120-m, for displaying electronic            message(s) assigned thereto, in any one of the following            display states:            -   first display state 123-1;            -   second display state 123-2; and up to            -   nth display state 123-n.

In some embodiments, one or more of the above identified elements arestored in one or more of the previously mentioned memory devices, andcorrespond to a set of instructions for performing a function describedabove. The above identified modules or programs (e.g., sets ofinstructions) need not be implemented as separate software programs,procedures or modules, and thus various subsets of these modules may becombined or otherwise re-arranged in various embodiments. In someembodiments, the memory 306 optionally stores a subset of the modulesand data structures identified above. Furthermore, the memory 306 maystore additional modules and data structures not described above.

Although FIGS. 2 and 3 show a “device 102” and a “user interface objectdisplaying system 106,” respectively, FIGS. 2 and 3 are intended more asfunctional description of the various features which may be present incomputer systems than as a structural schematic of the embodimentsdescribed herein. In practice, and as recognized by those of ordinaryskill in the art, items shown separately could be combined and someitems could be separated.

FIGS. 4A-4H illustrate depictions of example user interfaces 400 of amessaging application 150 for displaying electronic messages inaccordance with some embodiments. In some embodiments, the example userinterfaces 400 illustrated in FIGS. 4A-4H are displayed by a computingdevice (e.g., computing device 102, FIG. 2).

An example user interface 400 for a messaging application is shown inFIG. 4A. In some embodiments, the example user interface 400 comprisesan electronic message list 412. In some embodiments, the electronicmessage list 412 is displayed in an electronic message list panel (e.g.,the portion of user interface 400 with a white background in FIG. 4A).The electronic message list 412 comprises a plurality of user interfaceobjects, such as a user interface object 402-1, a user interface object404, a user interface object 406, a user interface object 408 and a userinterface object 410, etc. In some embodiments, a respective userinterface object in the plurality of user interface objects is visuallydistinct in the electronic message list and represents one or morecorresponding electronic messages in a plurality of electronic messages.For example, the user interface object 402-1 corresponds to a group(also called herein a cluster) of electronic messages (e.g., emails)having a collective association. In this case, the group of emailscorresponding to the user interface object 402-1 includes nine emailmessages relating to “Promotions,” such as retail sales, newslettersfrom stores or coupons from businesses. In another example, the userinterface object 406 corresponds to a group of electronic messagesrelating to “Social Updates,” such as postings on Google+, or othersocial networks (e.g., blogs). In yet another example, the userinterface objects 404 and 408 correspond to groups of electronicmessages having a collective association. For example either one of userinterface objects 404 and 408 corresponds to an email conversationthread including at least two email messages having a collectiveassociation (e.g., based on subject of the email, recipients and sendersor an identification number). In another example, the user interfaceobject 410 corresponds to a single email message from a user named Anna.

In some embodiments, a group of electronic messages is displayed withone or more indicia of a number of messages, in the group of electronicmessages, that have a predefined display status. For example, the userinterface object 402-1 shown in FIG. 4A is displayed with an indicationof a number of electronic messages that have not been previouslydisplayed (e.g., “9 New”) in the group of electronic messages, and theuser interface object 406 is displayed with an indication of a number ofelectronic messages that have not been previously displayed (e.g., “2New”) in the group of electronic messages.

FIG. 4A also depicts a plurality of user interface objects displayed intheir respective “first display state.” For example, the user interfaceobject 402-1 is displayed in first display state and the user interfaceobject 404 is displayed in first display state. In some embodiments, arespective user interface object in the first display state includes atleast a subset of the text of the one or more electronic messagesassociated with the respective user interface object. For example, theuser interface object 410 in the first display state, as shown in FIG.4A, displays at least a subset of the body of the email message fromAnna. In some embodiments, a respective user interface object in thefirst state is displayed with all the text of one electronic messageassociated with the respective user interface object. For example, thebody text of the single email message in the user interface object 410is fairly short, and the user interface object 410 includes the entirebody text of the single email. In some embodiments, a respective userinterface object in the first display state includes a subset of thebody text of the most recent electronic message (e.g., a most recentlyreceived electronic message) in the plurality of electronic messagesassociated with the respective user interface object.

For example, the user interface object 408 corresponds to an email“thread” or email “conversation,” comprising more than one emailmessage. The user interface object 408 in the first display state isdisplayed with a subset of the text of the most recent email message inthe plurality of emails associated with the user interface object 408(e.g., “Sounds good—I'm in!”). In some embodiments, a respective userinterface object in the first display state is displayed with a logo orsymbol 414 to assist the user in quickly locating a particular userinterface object in the electronic message list.

FIG. 4A also illustrates detection of a user input 405 (e.g., a touchinput, a mouse click, etc.) on the electronic message list. In FIG. 4A,the user input 405 is detected on the user interface object 402-1,corresponding to a user selection of the user interface object 402-1.

FIG. 4B illustrates that, in response to detecting user selection of theuser interface object 402-1 of the plurality of user interface objects,the user interface object 402-2 in a second state is displayed. Displayof the user interface object 402-2 in the second state includesconcurrent display of multiple electronic messages in the group ofelectronic messages. In some embodiments, display of a user interfaceobject in the second state includes concurrent display of all electronicmessages in the group of electronic messages. For example, in FIG. 4B,display of the user interface object 402-2 in the second state includesdisplay of all of the nine electronic messages that correspond to theuser interface object 402-2. In some embodiments, display of a userinterface object in the second state includes display of a subset ofelectronic messages in the group of electronic messages. For example, insome embodiments, when display of all of the electronic messages thatcorrespond to a user interface object exceeds a display size of a userinterface, only a subset of electronic messages in the group ofelectronic messages is displayed.

In some embodiments, displaying multiple electronic messages in thegroup of electronic messages includes displaying, for each of themultiple electronic messages in the group of electronic messages, atleast a subset of a text of the electronic message. In some embodiments,displaying multiple electronic messages in the group of electronicmessages includes foregoing displaying the entire text in the multipleelectronic messages. For example, as illustrated in FIG. 4B, display ofan electronic message 416 includes display of a subset of a text of theelectronic message 416. Thus, in some embodiments, all of the nineelectronic messages that correspond to the user interface object 402-2are deemed to be displayed, even though only a subset of a text isdisplayed for each of the nine electronic messages.

In some embodiments, the user interface object 402-2 is displayed withan animation. For example, FIG. 4B also shows a subset of user interfaceobjects above the user interface object 402-1 in the electronic messagelist (e.g., 412, FIG. 4A) moving vertically upward, and a subset of userinterface objects below the user interface object 402-1 in theelectronic message list moving vertically downward. This allows the userinterface object 402-2 to be displayed on the user interface 400. InFIG. 4B, all of the user interface object 402-2 fits on the visibleportion of the user interface 400, but in some embodiments, only aportion of the user interface object 402-2 is displayed within thevisible portion of the user interface 400 (e.g., when the user interfaceobject 402-2 has more electronic messages than can be displayed withinthe visible portion of the user interface 400).

Thus, FIGS. 4A-4B illustrate that, in response to detecting userselection of a user interface object in a first state, toggling displayof the user interface object from a first state to a second state. Insome embodiments, display of the user interface object in the firststate is replaced with display of the user interface object in thesecond state.

FIG. 4B also illustrates detection of a user input 407 (e.g., a touchinput, a mouse click, etc.) at a location, on the example user interface400, that does not correspond to the electronic message list 412.

FIG. 4C shows an exemplary response to detecting the user input 407(FIG. 4B) at a location that does not correspond to the electronicmessage list 412. Responsive to user input 407, in FIG. 4C, display ofthe user interface object 402-2 in the second state is replaced withdisplay of the user interface object 402-3 in the first state. Similarto the user interface object 402-1 shown in FIG. 4A, the user interfaceobject 402-3 corresponds to a group of electronic messages pertaining to“Promotions.” However, while the user interface object 402-1 shown inFIG. 4A is displayed with an indication of a number of electronicmessages that have not been previously displayed (e.g., “9 New”) in thegroup of electronic messages, the user interface object 402-3 in FIG. 4Cis displayed without an indication of a number of electronic messagesthat have not been previously displayed, because the messages thatcorrespond to the user interface object 402-3 have been displayed (withthe display of the user interface object 402-2 in FIG. 4B).

FIGS. 4D-4E illustrate example user interfaces with one or more tabs inaccordance with some embodiments.

In FIG. 4D, the user interface 400 includes one or more tabs, such as afirst tab 418 for displaying a first group of electronic messages (e.g.,electronic messages that are deemed to be primary electronic messages),a second tab 420 for displaying a second group of electronic messages(e.g., electronic messages that are deemed to be promotional messages),and a third tab 422 for displaying a third group of electronic messages(e.g., electronic messages that are deemed to be posts on socialnetworks). In some embodiments, a tab is displayed with an indication ofa number of messages, that have a predefined display status, in thegroup of electronic messages corresponding to the tab. For example, thesecond tab 420 in FIG. 4D is displayed with an indication of a number ofelectronic messages that have not been previously displayed (e.g., “9New”) in the group of electronic messages corresponding to the secondtab 420 (e.g., promotional messages), and the third tab 422 is displayedwith an indication of a number of electronic messages that have not beenpreviously displayed (e.g., “2 New”) in the group of electronic messagescorresponding to the third tab 422 (e.g., social updates).

FIG. 4D also illustrates detection of a user input 409 (e.g., a touchinput, a mouse click, etc.) on the example user interface 400. In FIG.4D, the user input 409 is detected on the second tab 420, correspondingto a user selection of the second tab 420.

FIG. 4E illustrates that, in response to detecting user selection of thesecond tab 420, messages in a group of electronic messages correspondingto the second tab 420 are displayed. Display of the messages in thegroup of electronic messages corresponding to the second tab 420includes concurrent display of the messages in the group of electronicmessages corresponding to the second tab 420. In some embodiments,display of messages in the group of electronic messages includesconcurrent display of all electronic messages in the group of electronicmessages. For example, in FIG. 4E, all of the nine electronic messagesthat correspond to the second tab 420 are displayed in response todetecting user selection of the second tab 420. In some embodiments,only a subset of messages in the group of electronic messages isdisplayed in response to detecting user selection of the second tab 420.For example, in some embodiments, when display of all of the electronicmessages that correspond to a tab exceeds a display size of a userinterface, only a subset of electronic messages in the group ofelectronic messages is displayed.

In some embodiments, all of the electronic messages listed in theexample user interface 400 are deemed to be displayed, regardless ofwhether only a subset of a text of each electronic message is displayed.

FIG. 4F illustrates an example user interface 400, which is similar tothe example user interface 400 illustrated in FIG. 4A. A user interfaceobject 402-4 in FIG. 4F corresponds to the user interface object 402-1in FIG. 4A. However, the user interface object 402-4 includes both (i)an indication of a number of messages that have a predefined displaystatus (e.g., unseen messages) and (ii) an indication of a number ofmessages that have a predefined read status (e.g., unread messages).

FIG. 4G illustrates an example user interface 400, which is similar tothe example user interface 400 illustrated in FIG. 4A. A user interfaceobject 402-5 in FIG. 4G corresponds to the user interface object 402-1in FIG. 4A. However, the user interface object 402-5 includes both (i)an indication of a number of messages that have a predefined displaystatus (e.g., unseen messages) and (ii) an indication of a number ofmessages that satisfy predefined timing criteria (e.g., messagesreceived within 24 hours, 12 hours, 2 hours, 1 hour, etc.).

FIG. 4G also illustrates detection of a user input 411 (e.g., a touchinput, a mouse click, etc.) on the example user interface 400. In FIG.4G, the user input 411 is detected on the user interface object 402-5,corresponding to a user selection of the user interface object 402-5.

FIG. 4H illustrates that, in response to detecting user selection of theuser interface object 402-5 of the plurality of user interface objects,the user interface object 402-6 in a second state is displayed. Displayof the user interface object 402-6 in the second state is similar todisplay of the user interface object 402-2 described above with respectto FIG. 4B. In FIG. 4H, electronic messages in the user interface object402-6 are categorized and arranged in accordance with a dichotomouscategorization. For example, in FIG. 4H, each electronic message in theuser interface object 402-6 is categorized based on whether it satisfiespredefined timing criteria (e.g., recent versus not-recent, or recentversus old). In some embodiments, as shown in FIG. 4H, electronicmessages that satisfy the predefined timing criteria are collocated(e.g., electronic messages that satisfy the predefined timing criteriaare displayed together without any electronic message that does notsatisfy the predefined timing criteria between any two electronicmessages that satisfy the predefined timing criteria).

Although the one or more indicia shown in FIGS. 4A-4H are illustrated tobe included in corresponding user interface objects, a person havingordinary skill in the art would understand that the one or more indicianeed not be included in corresponding user interface objects. Forexample, in some embodiments, the indication of “9 New” for the userinterface object 402-1 partially overlaps the user interface object402-1. In some embodiments, the indication of “9 New” for the userinterface object 402-1 is displayed separated from the user interfaceobject 402-1. In some embodiments, the indication of a number ofmessages that have a predefined display status includes one or morenumbers without any text (e.g., a number “9” in a colored circle).

FIGS. 4A-4H are used to describe operations illustrated in FIGS. 5A and5B.

FIGS. 5A and 5B are example flow charts illustrating a method 500 fordisplaying messages, in accordance with some embodiments. In someembodiments, the method 500 is performed at a computing device (e.g.,device 102, FIG. 2) having one or more processors and memory storing oneor more programs for execution by the one or more processors. In someembodiments, the computing device includes a display. In someembodiments, the computing device is coupled with a display, but doesnot include the display as part of the computing device.

The method includes (502) concurrently displaying (i) a user interfaceobject that represents a group of messages and (ii) one or more firstindicia of a number of messages, that have a predefined display status,in the group of messages while foregoing displaying more than onemessage of the group of messages. For example, in FIG. 4A, the computingdevice concurrently displays the user interface object 402-1 and anindication of a number of messages, that have a predefined displaystatus (e.g., unseen messages), in the group of nine messages withoutdisplaying more than one message in the group of the nine messages.

In some embodiments, the number of messages, in the group of messages,that have the predefined display status does not exceed a predefinednumber. For example, in accordance with a determination that the numberof messages, in the group of messages, that have the predefined displaystatus exceeds the predefined number, one or more first indicia of thepredefined number are concurrently displayed with the user interfaceobject that represents the group of messages. In some embodiments, inaccordance with a determination that the number of messages, in allgroups of messages, that have the predefined display status exceeds thepredefined number, one or more messages are deemed to have beenpreviously displayed so that the number of messages, in all groups ofmessages, that have the predefined display status does not exceed thepredefined number. For example, in some embodiments, in accordance witha determination that the number of messages, in all groups of messages,that have the predefined display status exceeds the predefined number, amessage that has the predefined display status and meets a predefinedtiming criteria (e.g., an oldest unseen message) is deemed to have beenpreviously displayed. In some embodiments, this process is repeateduntil the number of messages, in all groups of messages, that have thepredefined display status does not exceed the predefined number.

In some embodiments, a group of messages corresponds to one of aplurality of predefined group categories. In some embodiments, theplurality of predefined group categories includes social, promotions,updates, and forums.

In some embodiments, the method includes (504), prior to theconcurrently displaying, selecting the group of messages, from aplurality of messages received or sent by a single user, into the userinterface object using a set of content-based clustering rules that areindependent of relatedness between the messages in the group ofmessages. For example, in FIG. 4A, messages that correspond to the userinterface object 402-1 are selected in accordance with a determinationthat the messages are promotional messages (e.g., including one or morekeywords that are indicative of promotional messages) regardless ofwhether the electronic messages are sent by a same sender or have a samesubject.

In some embodiments, displaying the user interface object thatrepresents the group of messages includes (506) displaying a portion ofa message in the group of messages while foregoing displaying one ormore messages, in the group of messages, other than the respectivemessage. For example, in FIG. 4A, the user interface object 402-1represents a group of nine messages, and a portion of a message (e.g., asender, such as Shoe Store) is displayed with the user interface object402-1. In some embodiments, the user interface object is a box thatincludes the portion of the message. For example, in FIG. 4A, the userinterface object 402-1 has a rectangular shape and includes a portion ofa message (e.g., a sender). In some embodiments, the method includesdisplaying a plurality of user interface objects that correspond torespective groups of messages. For example, in FIG. 4A, the userinterface object 402-1 represents a group of promotional messages andthe user interface object 406 represents a group of social updatemessages. In some embodiments, the message is a most recent message inthe group of messages. For example, in some embodiments, the userinterface object includes a portion of a most recent message in thegroup of messages that correspond to the user interface object (e.g., amost recent message in the promotional messages).

In some embodiments, displaying the user interface object thatrepresents the group of messages includes (508) displaying a tab thatcorresponds to the group of messages. For example, in FIG. 4D, the userinterface object that represents a group of promotional messages is atab user interface object 420. In some embodiments, displaying the userinterface object that represents the group of messages includesdisplaying a tab that corresponds to the group of messages whileforegoing displaying any message of the group of messages. For example,in FIG. 4D, the tab user interface object 420 is displayed withoutdisplaying any message of the group of messages that correspond to thetab user interface object 420. In comparison, FIG. 4E illustrates thatthe tab user interface object 420 is displayed with messages of thegroup of messages that correspond to the tab user interface object 420.

In some embodiments, messages, that have the predefined display status,in the group of messages include (510) messages, in the group ofmessages, that have not been displayed previously. In some embodiments,the messages that have not been displayed are called unseen messages. Insome embodiments, messages, that have the predefined display status, inthe group of messages include messages, in the group of messages, thathave been previously displayed. In some embodiments, a message is deemedto have been displayed if at least a portion of a header of the message(e.g., a subject, a sender, etc.) and/or a portion of a body of themessage has been displayed.

In some embodiments, the method includes (512) concurrently displaying(i) the user interface object, (ii) one or more second indicia of anumber of messages, that have a predefined read status, in the group ofmessages, and (iii) the one or more first indicia of the number ofmessages, that have the predefined display status, in the group ofmessages. For example, in FIG. 4F, the user interface object 402-4 isdisplayed concurrently with an indication of a number of messages thathave a predefined read status (e.g., “9 Unread”) and an indication of anumber of messages that have a predefined display status (e.g., “9New”). In some embodiments, the predefined display status is distinctfrom the predefined read status. For example, whether a message has thepredefined display status is independent of whether the message has thepredefined read status.

The method includes (514) receiving a selection of the user interfaceobject. For example, in FIG. 4A, the user input 405 is detected, whichcorresponds to the selection of the user interface object 402-1.

The method includes (516), in response to receiving the selection of theuser interface object, displaying messages in the group of messages. Forexample, as shown in FIG. 4B, messages in the group of messages (e.g.,the user interface object 402-2) are displayed. In some embodiments,displaying messages in the group of messages includes displaying asubset of messages in the group of messages, where the subset includesfewer messages than the entire group of messages. For example, in someembodiments, displaying messages in the group of messages includesdisplaying a predefined number of most recent messages in the group ofmessages.

In some embodiments, each message in messages in the group of messagesis categorized and arranged (518) in accordance with a dichotomouscategorization. For example, in some embodiments, the dichotomouscategorization classifies each message in to one of two groups based onwhether the message meets categorization criteria (e.g., a first groupthat meets the categorization criteria and a second group that does notmeet the categorization criteria). For example, in some embodiments, thedichotomous categorization is based on whether each message has beenread previously. In another example, in some embodiments, thedichotomous categorization is based on whether each message is deemed tobe recent.

In some embodiments, the displayed messages in the group of messages aregrouped in accordance with the dichotomous categorization. For example,in FIG. 4H, messages, in the user interface object 402-6, that areclassified into a same group (e.g., a group of recent messages) inaccordance with the dichotomous categorization are displayed together(and highlighted in bold).

In some embodiments, the dichotomous categorization is (520) whether arespective message has been received within a predefined time period(e.g., 24 hours, 12 hours, 2 hours, 1 hours, etc.). In some embodiments,messages that have been received within the predefined time period aredeemed to be recent messages. In some embodiments, messages that havebeen received before the predefined time period are not deemed to berecent messages. In some embodiments, the messages that have beenreceived before the predefined time period are deemed to be oldmessages.

In some embodiments, the method includes (522) concurrently displaying(i) the one or more first indicia of the number of messages, that havethe predefined display status, in the group of messages and (ii) one ormore second indicia of a number of messages, in the group of messages,that have been received within the predefined time period. For example,in FIG. 4G, an indication of a number of messages that have thepredefined display status (e.g., “9 New”) for the user interface object402-5 is displayed concurrently with an indication of a number ofmessages that have been received within the predefined time period(e.g., “5 Recent”). Modifying the one or more displayed first indicia ofthe number of messages, that have the predefined display status, in thegroup of messages includes ceasing to display the one or more firstindicia while maintaining the display of the one or more second indicia.For example, in FIG. 4H, the indication of the number of messages thathave the predefined display status (e.g., “9 New” shown in FIG. 4G)ceases to be displayed while the indication of the number of messagesthat have been received within the predefined time period (e.g., “5Recent”) is maintained.

In some embodiments, the method includes concurrently displaying (i) theone or more indicia of the number of messages, that have the predefineddisplay status, in the group of messages and (ii) one or more indicia ofa number of messages, in the group of messages, that have a predefinedread status (e.g., “9 Unread” in FIG. 4F). Modifying the one or moredisplayed indicia of the number of messages, that have the predefineddisplay status, in the group of messages includes ceasing to display theone or more indicia of the number of messages, that have the predefineddisplay status, in the group of messages, while maintaining the displayof the one or more indicia of the number of messages, in the group ofmessages, that have the predefined read status. In some embodiments, themethod includes updating a read status of a respective message in thegroup of messages in response to displaying content of the respectivemessage. For example, in accordance with displaying an entire content ofthe respective message (e.g., in a read pane), a status of therespective message is changed from “unread” to “read.”

In some embodiments, each message in the group of messages is associatedwith a state indicating whether the message has been previouslydisplayed (also called herein “unseen” state). In some embodiments, bydefault, the state for the message is in a state indicating that themessage has not been previously displayed, before the state for themessage has been modified. Typically, states of a plurality of messagesin the group of messages are modified concurrently. For example, in someembodiments, the method includes, in accordance with displaying themessages in the group of messages, modifying states of all messages inthe group of messages so that the states of all messages in the group ofmessages indicate that all messages in the group of messages have beenpreviously displayed. In some other embodiments, the method includes, inaccordance with displaying the messages in the group of messages,modifying states of the displayed messages in the group of messages sothat each displayed message in the group of messages has a stateindicating that the displayed message has been previously displayed, andforegoing modifying states of messages in the group of messages thathave been displayed.

In some embodiments, in response to a request to view “all mails”associated with a user, states of a plurality of messages associatedwith the user are modified so that each message associated with the userhas a state indicating that the message has been previously displayed.

The method includes (524), in accordance with displaying the messages inthe group of messages, modifying the one or more displayed first indiciaof the number of messages, that have the predefined display status, inthe group of messages. In some embodiments, the computing device, inaccordance with displaying the messages in the group of messages, ceasesto display the one or more first indicia of the number of messages. Forexample, in FIG. 4B, “9 New” is no longer displayed). In someembodiments, the computing device, in accordance with displaying themessages in the group of messages, updates the number of messages, thathave the predefined display status, in the group of messages. Forexample, in some embodiments, instead of ceasing to display the one ormore first indicia, the computing device updates the number of messages(e.g., “0 New”). In another example, when the group of messages includestwenty messages and ten messages of the twenty messages are displayed inresponse to a user input (e.g., due to the display size), the one ormore first indicia of the number of messages are changed to indicatethat ten messages remain unseen (e.g., “10 New”). In some embodiments,the method includes modifying the displayed first indicia of the numberof unseen messages in the group of messages in response to receiving theselection of the user interface object that represents the group ofmessages.

In some embodiments, modifying the one or more displayed first indiciaof the number of messages, that have the predefined display status, inthe group of messages includes (526) ceasing to display the one or morefirst indicia of the number of messages, that have the predefineddisplay status, in the group of messages. For example, in FIG. 4C, theindication of a number of messages that have the predefined displaystatus (e.g., unseen messages) is not displayed. In some embodiments,the method includes ceasing to display the one or more first indicia ofthe number of messages, that have the predefined display status, in thegroup of messages after a predetermined period of time has elapsed. Forexample, in some embodiments, display of the user interface object 402-1(FIG. 4A) is replaced with display of the user interface object 402-2(FIG. 4B) with an animation (e.g., user interface objects above the userinterface object 402-1 moving vertically upward and user interfaceobjects below the user interface object 402-1 moving verticallydownward), and the indication of a number of messages that have thepredefined display status ceases to be displayed after the animation. Insome other embodiments, the method includes ceasing to display the oneor more first indicia of the number of messages, that have thepredefined display status, in the group of messages during theanimation.

In some embodiments, the method includes (528) modifying the one or moredisplayed first indicia of the number of messages after a predeterminedperiod of time subsequent to displaying the messages in the group ofmessages. In some embodiments, the method includes modifying the one ormore displayed indicia of the number of messages in response todisplaying the messages in the group of messages. For example, in someembodiments, the one or more displayed indicia are modified upondisplaying the messages in the group of messages. In some embodiments,the method includes modifying the one or more displayed indicia of thenumber of messages while initiating a display of the messages in thegroup of messages. For example, in some embodiments, the one or moredisplayed indicia are modified before displaying the messages in thegroup of messages.

In some embodiments, a message is assigned to two or more groups ofmessages. Thus, in some embodiments, each group of the two or moregroups of messages includes a same message. For example, in someembodiments, a first group of messages includes a particular message anda second group of messages includes the particular message. In someembodiments, in accordance with a determination that the particularmessage has been previously displayed as part of the first group ofmessages, the particular message is deemed to be previously displayed aspart of the second group of messages. For example, when the particularmessage has been previously displayed as part of the first group ofmessages, the particular message is treated as a previously displayedmessage when displaying the second group of messages (e.g., theparticular message is not included in the unseen messages in the secondgroup of messages). In some other embodiments, a determination whetherthe particular message has been previously displayed as part of thefirst group of messages is independent of a determination whether theparticular message has been previously displayed as part of the secondgroup of messages. Similarly, in some embodiments, a determinationwhether the particular message has been previously displayed as part ofthe second group of messages is independent of a determination whetherthe particular message has been previously displayed as part of thefirst group of messages. For example, when the particular message hasbeen previously displayed as part of the first group of messages, theparticular message is displayed as an unseen message when displayed aspart of the second group of messages.

In some embodiments, each message in the group of messages is associatedwith a state indicating whether the message has been previouslydisplayed. In some embodiments, the method includes modifying states ofmessages that exceeds a predefined timing criteria (e.g., messages thatwere received before a predefined period of time) so that such messagesare deemed to have been previously displayed.

In some embodiments, each message in the group of messages is associatedwith a state indicating whether the message has been previouslydisplayed. In some embodiments, the method includes receiving a searchquery and displaying one or more messages that satisfy the search querywhile foregoing modifying the states of the one or more messages. Forexample, in response to a search query that includes a term “shoe,” anelectronic message that includes the term “shoe” (e.g., an email from“Shoe Store” as illustrated in FIG. 4B) is displayed without modifyingthe state of the electronic message from Shoe Store. When a group ofmessages that includes the email from Shoe Store is subsequentlydisplayed as a single user interface object, the email from Shoe Storeis treated as unseen until the single user interface object is selectedand at least a subset of messages in the group of messages areconcurrently displayed.

Plural instances may be provided for components, operations orstructures described herein as a single instance. Finally, boundariesbetween various components, operations, and data stores are somewhatarbitrary, and particular operations are illustrated in the context ofspecific illustrative configurations. Other allocations of functionalityare envisioned and may fall within the scope of the embodiment(s). Ingeneral, structures and functionality presented as separate componentsin the example configurations may be implemented as a combined structureor component. Similarly, structures and functionality presented as asingle component may be implemented as separate components. These andother variations, modifications, additions, and improvements fall withinthe scope of the embodiment(s).

It will also be understood that, although the terms “first,” “second,”etc. may be used herein to describe various elements, these elementsshould not be limited by these terms. These terms are only used todistinguish one element from another. For example, a first userinterface object could be termed a second user interface object, and,similarly, a second user interface object could be termed a first userinterface object, without changing the meaning of the description, solong as all occurrences of the “first user interface object” are renamedconsistently and all occurrences of the “second user interface object”are renamed consistently. The first user interface object and the seconduser interface object are both user interface objects, but they are notthe same user interface object.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the claims. Asused in the description of the embodiments and the appended claims, thesingular forms “a”, “an” and “the” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willalso be understood that the term “and/or” as used herein refers to andencompasses any and all possible combinations of one or more of theassociated listed items. It will be further understood that the terms“comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

As used herein, the term “if” may be construed to mean “when” or “upon”or “in response to determining” or “in accordance with a determination”or “in response to detecting,” that a stated condition precedent istrue, depending on the context. Similarly, the phrase “if it isdetermined (that a stated condition precedent is true)” or “if (a statedcondition precedent is true)” or “when (a stated condition precedent istrue)” may be construed to mean “upon determining” or “in response todetermining” or “in accordance with a determination” or “upon detecting”or “in response to detecting” that the stated condition precedent istrue, depending on the context.

The foregoing description included example systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative embodiments. For purposes of explanation, numerousspecific details were set forth in order to provide an understanding ofvarious embodiments of the inventive subject matter. It will be evident,however, to those skilled in the art that embodiments of the inventivesubject matter may be practiced without these specific details. Ingeneral, well-known instruction instances, protocols, structures andtechniques have not been shown in detail.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the embodiments to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theembodiments were chosen and described in order to best explain theprinciples and their practical applications, to thereby enable othersskilled in the art to best utilize the embodiments and variousembodiments with various modifications as are suited to the particularuse contemplated.

What is claimed is:
 1. A method of displaying messages to a user,comprising: at a computing device having one or more processors andmemory storing one or more programs for execution by the one or moreprocessors: receiving a plurality of electronic messages; assigning afirst subset of the plurality of electronic messages to a predefinedgroup category based on a set of content-based clustering rules andcontent in respective message bodies of the plurality of electronicmessages; concurrently displaying a second subset of the plurality ofelectronic messages and a cluster graphic corresponding to thepredefined group category, wherein the cluster graphic includes a labelthat describes the predefined group category; while concurrentlydisplaying the second subset of electronic messages and the clustergraphic, receiving user selection of the cluster graphic; and inresponse to receiving the user selection of the cluster graphic,displaying a plurality of messages in the predefined group category,including displaying at least one message from the first subset ofelectronic messages.
 2. The method of claim 1, wherein each message inthe predefined group category is categorized and arranged in accordancewith a dichotomous categorization.
 3. The method of claim 2, wherein thedichotomous categorization is based on whether respective messages havebeen received within a predefined time period.
 4. The method of claim 1,wherein the cluster graphic further includes a first indicium of a countof messages in the predefined group category not previously presented tothe user; and the method further comprises: receiving a second pluralityof electronic messages; assigning one or more messages of the secondplurality of electronic messages to the predefined group category; andupdating the first indicium to indicate inclusion of the one or moremessages in the count of messages in the predefined group category notpreviously presented to the user.
 5. The method of claim 4, furthercomprising, in accordance with displaying at least one message in thepredefined group category not previously presented to the user,modifying the first indicium to reflect a decreased count of messages inthe predefined group category not previously presented to the user. 6.The method of claim 5, wherein modifying the first indicium comprisesmodifying the displayed first indicium after a predetermined period oftime subsequent to displaying the messages in the predefined groupcategory.
 7. The method of claim 4, wherein the cluster graphic includesa second indicium that shows a count of messages not previously read bythe user.
 8. The method of claim 4, wherein the cluster graphic includesa second indicium that shows a count of messages received within apredefined recent time period.
 9. The method of claim 1, wherein thecluster graphic is labeled by a keyword abbreviation associated with thepredefined group category.
 10. The method of claim 1, wherein thecluster graphic displays at most one message of the messages in thepredefined group category.
 11. The method of claim 1, wherein thecluster graphic displays header information for at least one message ofthe messages in the predefined group category.
 12. The method of claim11, wherein the header information includes information regarding amessage subject and/or a message sender.
 13. The method of claim 1,further comprising concurrently displaying: (a) the second subset of theplurality of electronic messages, (b) the cluster graphic correspondingto the predefined group category, and (c) a user interface objectcorresponding to a message conversation comprising one or moreelectronic messages.
 14. The method of claim 13, wherein the userinterface object includes display of a message subject and at least aportion of a message body of an electronic message in the messageconversation.
 15. The method of claim 1, wherein the cluster graphiccomprises a tab that corresponds to a message folder having messages inthe predefined group category.
 16. The method of claim 1, wherein thepredefined group category comprises promotional messages or socialupdates.
 17. The method of claim 1, wherein the content-based clusteringrules are independent of relatedness between respective messages in theplurality of electronic messages.
 18. The method of claim 1, wherein thesecond subset of the plurality of electronic messages are displayed inaccordance with a set of display rules.
 19. A computing device,comprising: one or more processors; memory; and one or more programs,wherein the one or more programs are stored in the memory and areconfigured to be executed by the one or more processors, the one or moreprograms including instructions for: receiving a plurality of electronicmessages; assigning a first subset of the plurality of electronicmessages to a predefined group category based on a set of content-basedclustering rules and content in respective bodies of the plurality ofelectronic messages; concurrently displaying a second subset of theplurality of electronic messages and a cluster graphic corresponding tothe predefined group category, wherein the cluster graphic includes alabel that describes the predefined group category; while concurrentlydisplaying the second subset of electronic messages and the clustergraphic, receiving user selection of the cluster graphic; and inresponse to receiving the user selection of the cluster graphic,displaying a plurality of messages in the predefined group category,including displaying at least one message from the first subset ofelectronic messages.
 20. A non-transitory computer readable storagemedium storing one or more programs, wherein the one or more programscomprise instructions for: receiving a plurality of electronic messages;assigning a first subset of the plurality of electronic messages to apredefined group category based on a set of content-based clusteringrules and content in respective bodies of the plurality of electronicmessages; concurrently displaying a second subset of the plurality ofelectronic messages and a cluster graphic corresponding to thepredefined group category, wherein the cluster graphic includes a labelthat describes the predefined group category; while concurrentlydisplaying the second subset of electronic messages and the clustergraphic, receiving user selection of the cluster graphic; and inresponse to receiving the user selection of the cluster graphic,displaying a plurality of messages in the predefined group category,including displaying at least one message from the first subset ofelectronic messages.